package com.bsj.travel.def.common.DTO.web.product;

import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/***
 * @description ProductDTO
 * @author LiJiaXin
 * @version 1.0.0
 * @time 2024/1/17 14:36
 **/
@Data
public class ProductDTO {

    /**
     * 主键ID
     */
    private Long productId;

    /**
     * 产品名称
     */
    @NotBlank(message = "产品名称不能为空")
    @Length(max = 50,message = "产品名称长度不能超过50")
    private String productName;

    /**
     * 品类 1:自定义品类 2:标准品类
     */
    @NotNull(message = "品类不能为空")
    @Range(min = 1, max = 2, message = "品类类型不存在")
    private Integer category;

    /**
     * 节点类型 D:直连设备 G:网关设备 S:网关子设备
     */
    @NotBlank(message = "节点类型不能为空")
    private String nodesType;

    /**
     * 网络类型 M:MQTT T:TCP U:UDP
     */
    @NotBlank(message = "网络类型不能为空")
    private String networkType;

    /**
     * 数据格式 1:JSON
     */
    @NotNull(message = "数据格式不能为空")
    @Range(min = 1, max = 1, message = "数据格式不存在")
    private Integer dataFormat;

    /**
     * 认证方式 1:设备秘钥
     */
    @NotNull(message = "认证方式不能为空")
    @Range(min = 1, max = 1, message = "认证方式不存在")
    private Integer authMethod;

    /**
     * 产品描述
     */
    private String remark;

    /**
     * 品类id
     */
    private Long categoryId;

}
